#ifndef __M_LOGGER_H__
#define __M_LOGGER_H__
#include<stdio.h>
#include<time.h>
//定义一个宏函数用来打印日志用fprintf
//fmt 是传入的占位符字符串  ...是可变参数（一般用于后面参数不确定的情况类似printf）
//日志一般要用到时间 这里使用 time函数 struct tm*变量 strftime将time转为字符串存到一个f中 localtime当前时间
//接下来要增加日志等级
#define INF 1
#define DBG 2
#define ERR 3
#define LOG_DEFAULT_LEVEL 2
#define LOG(level,fmt,...)    do{\
    if(level < LOG_DEFAULT_LEVEL)break;\
    time_t t = time(NULL);\
    struct tm* lt = localtime(&t);\
    char st[32] = {0};\
    strftime(st,31,"%H:%M:%S",lt);\
    fprintf(stdout,"[level:%d %s %s:%d]" fmt"\n",level,st,__FILE__,__LINE__,##__VA_ARGS__);}while(0)
#define ILOG(fmt,...) LOG(INF,fmt,##__VA_ARGS__)
#define DLOG(fmt,...) LOG(DBG,fmt,##__VA_ARGS__)
#define ELOG(fmt,...) LOG(ERR,fmt,##__VA_ARGS__)
#endif